home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSHHHHAAAADDDD((((3333SSSS)))) SSSSHHHHAAAADDDD((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSHHHHAAAADDDD, DDDDHHHHAAAADDDD, CCCCHHHHAAAADDDD, ZZZZHHHHAAAADDDD - Computes the Hadamard product of two vectors SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision Fortran: CCCCAAAALLLLLLLL SSSSHHHHAAAADDDD ((((_n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _b_e_t_a,,,, _z,,,, _i_n_c_z)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssshhhhaaaadddd((((iiiinnnntttt _n,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt _b_e_t_a,,,, ffffllllooooaaaatttt *_z,,,, iiiinnnntttt _i_n_c_z))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDHHHHAAAADDDD ((((_n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _b_e_t_a,,,, _z,,,, _i_n_c_z)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssshhhhaaaadddd((((iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee _b_e_t_a,,,, ddddoooouuuubbbblllleeee *_z,,,, iiiinnnntttt _i_n_c_z))));;;; Single precision complex Fortran: CCCCAAAALLLLLLLL CCCCHHHHAAAADDDD ((((_n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _b_e_t_a,,,, _z,,,, _i_n_c_z)))) C/C++ ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssshhhhaaaadddd((((iiiinnnntttt _n,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_y,,,, iiiinnnntttt _i_n_c_y,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b_e_t_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_z,,,, iiiinnnntttt _i_n_c_z))));;;; C/C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssshhhhaaaadddd((((iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_y,,,, iiiinnnntttt _i_n_c_y,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_z,,,, iiiinnnntttt _i_n_c_z))));;;; Double precision complex Fortran: CCCCAAAALLLLLLLL ZZZZHHHHAAAADDDD ((((_n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _b_e_t_a,,,, _z,,,, _i_n_c_z)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssshhhhaaaadddd((((iiiinnnntttt _n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_y,,,, iiiinnnntttt _i_n_c_y,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b_e_t_a,,,, PPPPaaaaggggeeee 1111 SSSSHHHHAAAADDDD((((3333SSSS)))) SSSSHHHHAAAADDDD((((3333SSSS)))) ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_z,,,, iiiinnnntttt _i_n_c_z))));;;; C/C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssshhhhaaaadddd((((iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_y,,,, iiiinnnntttt _i_n_c_y,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_z,,,, iiiinnnntttt _i_n_c_z))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These routines compute the Hadamard product of two vectors _x and _y, storing the results in a vector _z. z <- alpha * x * y + beta * z , i = 1, . . . n i i i i _a_l_p_h_a = 0.0 is recognized as a special case. _b_e_t_a = 0.0 or _b_e_t_a = 1.0 is also recognized as a special case. These routines accept the following arguments: _n Integer. (input) The number of elements in each vector. _a_l_p_h_a Scalar alpha. (input) SSSSHHHHAAAADDDD: Single precision. DDDDHHHHAAAADDDD: Double precision. CCCCHHHHAAAADDDD: Single precision complex. ZZZZHHHHAAAADDDD: Double precision complex. For C/C++, a pointer to this scalar is passed when alpha is complex; otherwise, alpha is passed by value. PPPPaaaaggggeeee 2222 SSSSHHHHAAAADDDD((((3333SSSS)))) SSSSHHHHAAAADDDD((((3333SSSS)))) _x Array of dimension (1 + (_n-1) * _i_n_c_x). (input) SSSSHHHHAAAADDDD: Single precision array. DDDDHHHHAAAADDDD: Double precision array. CCCCHHHHAAAADDDD: Single precision complex array. ZZZZHHHHAAAADDDD: Double precision complex array. The vector _x. If _i_n_c_x > 0, the _ith element of the vector _x is located in _x(1 + (_i-1) * _i_n_c_x) for Fortran and in _x[(_i-1) * _i_n_c_x] for C/C++. If _i_n_c_x < 0, the _ith element of the vector _x is located in _x(1 + (_n-_i) * |_i_n_c_x|) for Fortran, xxxx[(_n-_i) * |_i_n_c_x|] for C/C++. _i_n_c_x Integer. (input) The increment between elements of the vector _x. _i_n_c_x must not = 0. _y Array of dimension (1 + (_n-1) * _i_n_c_y). (input) SSSSHHHHAAAADDDD: Single precision array. DDDDHHHHAAAADDDD: Double precision array. CCCCHHHHAAAADDDD: Single precision complex array. ZZZZHHHHAAAADDDD: Double precision complex array. The vector _y. If _i_n_c_y > 0, the _ith element of the vector _y is located in _y(1+(_i-1) * _i_n_c_y) for Fortran, and in _y[(_i-1) * _i_n_c_y] for C/C++. If _i_n_c_y < 0, the _ith element of the vector _y is located in _y(1 + (_n-_i) * |_i_n_c_y|) for Fortran, _y[(_n-_i) * |_i_n_c_y|] for C/C++. _i_n_c_y Integer. (input) The increment between elements of the vector _y. _i_n_c_y must not be 0. _b_e_t_a The scalar beta. (input) SSSSHHHHAAAADDDD: Single precision. DDDDHHHHAAAADDDD: Double precision. CCCCHHHHAAAADDDD: Single precision complex. ZZZZHHHHAAAADDDD: Double precision complex. For C/C++, a pointer to this scalar is passed when beta is complex; otherwise, beta is passed by value. _z Array of dimension (1 + (_n-1) * _i_n_c_z). (input/output) SSSSHHHHAAAADDDD: Single precision array. DDDDHHHHAAAADDDD: Double precision array. CCCCHHHHAAAADDDD: Single precision complex array. ZZZZHHHHAAAADDDD: Double precision complex array. On entry, the vector _z. PPPPaaaaggggeeee 3333 SSSSHHHHAAAADDDD((((3333SSSS)))) SSSSHHHHAAAADDDD((((3333SSSS)))) If _i_n_c_z > 0, the _ith element of the vector _z is located in _z(1 + (_i-1) * _i_n_c_z) for Fortran, _z[(_i-1) * _i_n_c_z] for C/C++. If _i_n_c_z < 0, the _ith element of the vector _z is located in _z(1 + (_n-_i) * |_i_n_c_z|) for Fortran, _z[(_n-i) * _i_n_c_z] for C/C++. On exit, _z is overwritten with the Hadamard product. _i_n_c_z Integer. (input) The increment between elements of the vector _z. _i_n_c_z must not be 0. NNNNOOOOTTTTEEEESSSS These routines are extensions to the Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS). DDDDaaaattttaaaa TTTTyyyyppppeeeessss The following data types are described in this documentation: TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN Single precision complex CCCCOOOOMMMMPPPPLLLLEEEEXXXX Double precision complex DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX C/C++: Array dimensioned _n xxxx[[[[_n]]]] Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ssssccccssssllll____ccccoooommmmpppplllleeeexxxx Double precision complex ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx C++ STL: PPPPaaaaggggeeee 4444 SSSSHHHHAAAADDDD((((3333SSSS)))) SSSSHHHHAAAADDDD((((3333SSSS)))) Array dimensioned _n xxxx[[[[_n]]]] Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> Double precision complex ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. PPPPaaaaggggeeee 5555